System.Collections.ObjectModel.KeyedCollection<TKey,TItem>. Метод ChangeItemKey
В этой статье приводятся дополнительные замечания к справочной документации по этому API.
Метод ChangeItemKey(TItem, TKey) не изменяет внедренный item
ключ; он просто заменяет ключ, сохраненный в словаре подстановки. Таким образом, если newKey
ключ отличается от внедренного ключа, вы не можете получить доступ item
с помощью ключа, возвращаемогоitem
GetKeyForItem.
Этот метод ничего не делает, если KeyedCollection<TKey,TItem> у него нет словаря подстановки.
Каждый ключ в объекте KeyedCollection<TKey,TItem> должен быть уникальным. Ключ не может быть null
.
Этот метод является операцией O(1).
Заметки для разработчиков
Перед изменением ключа, внедренного в элемент, необходимо вызвать этот метод, чтобы обновить ключ в словаре подстановки. Если порог создания словаря равен -1, вызов этого метода не требуется.
Не предоставляйте метод как ChangeItemKey общедоступный метод производного класса. Неправильное использование этого метода ставит словарь подстановки из синхронизации с ключами элементов. Например, установка ключа null
на другое значение добавляет несколько ключей для элемента в словарь подстановки. Предоставьте этот метод внутренним образом, чтобы разрешить мутируемые ключи элементов: если ключ для элемента изменяется, этот метод используется для изменения ключа в словаре подстановки.